package com.example.anwserai.demos.web.util;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

public class FileConvertUtils {

    /**
     * 将 MultipartFile 保存到指定目录并转换为 File
     *
     * @param multipartFile 上传的文件
     * @param targetDir     目标目录
     * @return 转换后的 File 对象
     * @throws IOException 如果文件操作失败
     */
    public static File saveMultipartFileToDir(MultipartFile multipartFile, String targetDir) throws IOException {
        // 确保目标目录存在
        Path dirPath = Paths.get(targetDir);
        if (!Files.exists(dirPath)) {
            Files.createDirectories(dirPath);
        }

        // 创建目标文件路径
        Path targetPath = dirPath.resolve(multipartFile.getOriginalFilename());
        File file = targetPath.toFile();

        // 将 MultipartFile 的内容复制到目标文件
        try (InputStream inputStream = multipartFile.getInputStream()) {
            Files.copy(inputStream, targetPath, StandardCopyOption.REPLACE_EXISTING);
        }

        // 返回 File 对象
        return file;
    }
}